
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    /**
     * 第一遍
     * 执行耗时:4 ms,击败了58.69% 的Java用户
     * 内存消耗:51.3 MB,击败了77.14% 的Java用户
     * @param height
     * @return
     */
//    public int maxArea(int[] height) {
//        int L = 0, R = height.length - 1;
//
//        int res = 0;
//        int cur_area = 0;
//        while (L < R) {
//            cur_area = (R - L) * Math.min(height[L], height[R]);
//            res = Math.max(res, cur_area);
//            // 移动较低的那一侧；
//            if (height[L] < height[R]) {
//                L++;
//            } else {
//                R--;
//            }
//        }
//        return res;
//    }


    /**
     * 第二遍
     * @param height
     * @return
     */
//    public int maxArea(int[] height) {
//        int L = 0, R = height.length - 1;
//        int res = 0;
//        while (L < R) {
//            int cur_area = (R - L) * Math.min(height[L], height[R]);
//            res = Math.max(res, cur_area);
//            if (height[L] < height[R]) {
//                L++;
//            } else {
//                R--;
//            }
//        }
//        return res;
//    }


    /**
     * 第三遍
     * @param height
     * @return
     */
//    public int maxArea(int[] height) {
//        int L = 0,  R = height.length - 1;
//        int res = 0;
//        while (L < R) {
//            int cur_area = (R - L) * Math.min(height[L], height[R]);
//            res = Math.max(res, cur_area);
//            if (height[L] < height[R]) {
//                L++;
//            } else {
//                R--;
//            }
//        }
//        return res;
//    }


    /**
     * 第四遍 2/28
     * @param height
     * @return
     */
    public int maxArea(int[] height) {
        int L = 0,  R = height.length - 1;
        int res = 0;
        while (L < R) {
            int cur_area = (R - L) * Math.min(height[L], height[R]);
            res = Math.max(res, cur_area);
            if (height[L] < height[R]) {
                L++;
            } else {
                R--;
            }
        }
        return res;
    }
}
//leetcode submit region end(Prohibit modification and deletion)
